<?php

class Web_Admin_Pedidos_Svc_GuardarPedido
{

    public function doIt()
    {
        $this->enviarformulario();
    }

    private function enviarformulario()
    {
        if ($_POST['cliNombre'] == '') {
            $error['cliNombre'] = 'Ingrese Cliente';
        }
        if ($_POST['nombre'] == '') {
            $error['nombre'] = 'Ingrese Nombres y Apellidos';
        }
        if ($_POST['cli_day1'] == '0' || $_POST['cli_day2'] == '0' || $_POST['cli_day3'] == '') {
            $error['fechaEntrega'] = 'Seleccione Fecha de Entrega';
        }
        if ($_POST['cli_day1'] != '' && $_POST['cli_day2'] != '' && $_POST['cli_day3'] != '') {
            $ftcDia = (strlen($_POST['cli_day1']) == 2) ? $_POST['cli_day1'] : '0' . $_POST['cli_day1'];
            $ftcMes = (strlen($_POST['cli_day2']) == 2) ? $_POST['cli_day2'] : '0' . $_POST['cli_day2'];
            $ftcAnio = $_POST['cli_day3'];
            $fechaEnv = $ftcAnio . '-' . $ftcMes . '-' . $ftcDia;
            
            if ($fechaEnv == date('Y-m-d')){
                $error['fechaEntrega'] = 'Seleccione una Fecha de Entrega posterior al día de hoy';
            }
            
        }
        if ($_POST['horaEntrega'] == '0') {
            $error['horaEntrega'] = 'Seleccione Hora de Entrega';
        }
        if ($_POST['direccion'] == '') {
            $error['direccion'] = 'Ingrese direccion';
        }
        if ($_POST['dedicatoria'] == '') {
            $error['dedicatoria'] = 'Ingrese dedicatoria';
        }
        if ($_POST['telefono'] == '') {
            $error['telefono'] = 'Ingrese telefono';
        }
        if ($_POST['tipoPago'] == '0') {
            $error['tipoPago'] = 'Ingrese Tipo de Pago';
        }

        if (count($error) > 0) {
            $_SESSION['post'] = $_POST;
            $_SESSION['error'] = $error;
            Ey::goBack();
        }

        /*  Registro del carrio de compras */
        $obj = new Web_Db_Carrito();
        $row = array('car_usu_id' => $_POST['cliId'],
            'car_fecha_registro' => date('Y-m-d'),
            'car_total' => $_SESSION['subtotal'] + $_SESSION['precioDelivery'],
            'car_delivery' => $_SESSION['precioDelivery'],
            'car_tipo_pago' => $_POST['tipoPago'],
            'car_estado' => 1);
        $obj->insert($row);
        $car_id = $obj->getAdapter()->lastInsertId();

        /*  Registro de todos los productos del carrito */
        $obj2 = new Web_Db_CarritoDetalle();
        foreach ($_SESSION['matriz'] as $carrito) {
            $row2 = array('det_car_id' => $car_id,
                'det_pro_id' => $carrito['id'],
                'det_pro_nombre' => $carrito['nombre'],
                'det_pro_cantidad' => $carrito['cantidad'],
                'det_pro_precio' => $carrito['importe']);
            $obj2->insert($row2);
        }

        /*  Registro de direccion de envio */
        $obj3 = new Web_Db_CarritoDireccion();
        $row3 = array('dir_car_id' => $car_id,
            'dir_nombre' => $_POST['nombre'],
            'dir_fenvio' => $fechaEnv,
            'dir_hora_envio' => $_POST['horaEntrega'],
            'dir_distrito' => $_POST['distrito'],
            'dir_direccion' => $_POST['direccion'],
            'dir_referencia' => $_POST['referencia'],
            'dir_dedicatoria' => $_POST['dedicatoria'],
            'dir_telefono' => $_POST['telefono']);
        $obj3->insert($row3);

        unset($_SESSION['idDelivery']);
        unset($_SESSION['precioDelivery']);
        unset($_SESSION['subtotal']);
        unset($_SESSION['matriz']);
        unset($_SESSION['eyoriacart']);
        
        /**********************************************************************/
        
        if ($car_id) {

            $obj3 = new Web_Db_Carrito();
            $db3 = $obj3->getAdapter();
            $caritoDato = $db3->fetchRow($obj3->select()
                            ->where('car_id=?', $car_id)
                            ->where('car_usu_id=?', $_POST['cliId']));

            if ($caritoDato) {
                $obj = new Web_Db_CarritoDetalle();
                $db = $obj->getAdapter();
                $carrito = $db->fetchAll($obj->select()
                                ->where('det_car_id=?', $car_id));

                foreach ($carrito as $value) {
                    $total+=$value->det_pro_precio;
                }

                $obj2 = new Web_Db_CarritoDireccion();
                $db2 = $obj2->getAdapter();
                $direccion = $db2->fetchRow($obj2->select()
                                ->where('dir_car_id=?', $car_id));

                $obj4 = new Web_Db_Clientes();
                $db4 = $obj4->getAdapter();
                $cliente = $db4->fetchRow($obj4->select()
                                ->where('cli_id=?', $_POST['cliId']));

                global $db;
                $sql = $db->select()->from('ma_moneda', array('mon_valor'))->where('mon_key="dolar"');
                $moneda = $db->fetchRow($sql);
                $moneda->mon_valor = round(1 / $moneda->mon_valor, 2);
                
                $totalSoles = $caritoDato->car_total * $moneda->mon_valor;
            }
        }

        $smarty = new Smarty_Engine();
        $smarty->assign('car_id', $car_id);
        $smarty->assign('total', $total);
        $smarty->assign('carrito', $carrito);
        $smarty->assign('direccion', $direccion);
        $smarty->assign('caritoDato', $caritoDato);
        $smarty->assign('cliente', $cliente); 
        $smarty->assign('totalSoles', number_format($totalSoles, 2, '.', ','));
        $smarty->assign('moneda', $moneda->mon_valor);

        $message_body = Ey::utfToIso($smarty->fetch(APP_ROOT . DS . 'tpl' . DS . 'mail-compra.tpl'));

        $mail = new Zend_Mail();
        $mail->setBodyHtml($message_body);
        $mail->setFrom('servicios@manda.com.pe', 'MANDA.COM.PE');
        $mail->addTo($_SESSION['usr']['cli_email']);
        $mail->addTo('contacto@manda.com.pe');
        $mail->setSubject(Ey::utfToIso('Compra # ' . $car_id));
        $mail->send();
        
        /**********************************************************************/

        Ey::redirect(WEB_ROOT . '/admin/pedidos');
    }

}